home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
gfx
/
misc
/
gnuplot-3.7src.lha
/
gnuplot-3.7src
/
gnuplot-3.7.lha
/
gnuplot-3.7
/
lasergnu
< prev
next >
Wrap
Text File
|
1998-04-15
|
7KB
|
231 lines
#!/bin/csh -f
#
# $Id: lasergnu,v 1.5 1994/01/29 16:27:12 alex Exp $
#
# Print gnuplot output on an Imagen or Postscript laser printer.
set print_banner = on # Print a banner page unless told otherwise.
set input_files = () # the plot input command files
set lpr_opts = () # options to lpr
# Default printer set by shell variable PRINTER.
if (! $?PRINTER) then
if ($?LASER) then
set PRINTER=$LASER
else
set PRINTER="lw0"
endif
endif
set printer = (-P$PRINTER)
# File for plot commands, and for plot output
set TMP=/tmp/plot$$
set outfile=$TMP.out # the output file
onintr cleanup
# default is Imagen mode for Imagen printer; see -p option
set setterm="set terminal imagen"
set LANG="-Limpress"
# Loop through the command-line arguments.
top:
if ($#argv > 0) then
switch ("$argv[1]")
case -b*: # Do not print a banner page.
case -J*: # Compatible with imprint.
set print_banner = off
set lpr_opts=($lpr_opts -h)
shift argv
goto top
case -f?*: # Specify file containing plot commands
set input_files = ($input_files `echo $argv[1] | sed 's/^-f//'`)
shift argv
goto top
case -f: # Specify file containing plot commands
shift argv
if ($#argv > 0) then
set input_files = ($input_files $argv[1])
shift argv
else
echo "Usage: -f file ..."
echo "Type lasergnu -help for help."
exit (1)
endif
goto top
case -F?*: # Specify font
set fontsize = `echo $argv[1] | sed 's/^-F//'`)
shift argv
goto top
case -F: # Specify font
shift argv
if ($#argv > 0) then
set font = $argv[1]
shift argv
else
echo "Usage: -F font"
echo "Type lasergnu -help for help."
exit (1)
endif
goto top
case -t?*: # Specify title of plot
echo set title \""`echo $argv[1] | sed 's/^-t//'`"\" >> $TMP
shift argv
goto top
case -t: # Specify title of plot
shift argv
if ($#argv > 0) then
echo set title \""$1"\" >> $TMP
shift argv
else
echo "Usage: -t title ..."
echo "Type lasergnu -help for help."
exit (1)
endif
goto top
case -help:
goto usage
case -P?*: # Set the printer, exactly as by itroff.
set printer = $argv[1]
shift argv
goto top
case -P: # Set the printer, exactly as by itroff.
shift argv
if ($#argv > 0) then
set printer = (-P$argv[1])
shift argv
else
echo "Usage: -P printer ..."
echo "Type lasergnu -help for help."
exit (1)
endif
goto top
# use impress
case -I:
echo Imagen is the default mode now
shift argv
goto top
# use postscript instead of impress language
case -p:
set setterm="set term postscript"
set LANG="-Lpostscript"
shift argv
goto top
case -s?*: # Specify scale of plot
echo set size `echo $argv[1] | sed 's/^-s//'` >> $TMP
shift argv
goto top
case -s: # Specify scale of plot
shift argv
if ($#argv > 0) then
echo set size "$1" >> $TMP
shift argv
else
echo "Usage: -s xscale,yscale"
echo "Type lasergnu -help for help."
exit (1)
endif
goto top
case -w?*: # Specify split page in multiplot (horiz,vertical)
set windows=`echo "$argv[1]\]" | sed 's/^-s/[/'`
shift argv
goto top
case -w: # Specify split page
shift argv
if ($#argv > 0) then
set windows="[$argv[1]]"
shift argv
else
echo "Usage: -w horiz,vertical"
echo "Type lasergnu -help for help."
exit (1)
endif
goto top
case -O:
set orientation="portrait"
shift argv
goto top
case -?*:
echo "I do not recognize option $argv[1]."
goto usage
default:
echo "$argv[1]" >> $TMP
shift argv
goto top
endsw
endif
# try to devine the printer type
if ($printer =~ -Plw*) then
set setterm="set term postscript"
set LANG="-Lpostscript"
endif
if ($printer =~ -Pim*) then
set setterm="set term imagen $windows $orientation $font"
set LANG="-Limpress"
endif
# Set up input file
echo "$setterm" > $TMP.plt
echo set output \"$outfile\" >> $TMP.plt
if (-e $TMP) cat $TMP >> $TMP.plt
grep -v "set te" $input_files | grep -v "set o" >> $TMP.plt
echo "quit" >> $TMP.plt
# If input file is specified AND command line contains plot commands, then
# do command line args first, then plot commands in input file.
gnuplot $TMP.plt < /dev/null
#gnuplot $TMP.plt $input_files
if ($status == 0 && -e $outfile && ! -z $outfile) then
# The printer is whatever printer was last specified,
# or the default printer if none was specified.
# Imagen terminal driver support the page header
if ($LANG == -Limpress) then
/usr/local/bin/ipr $LANG $printer \
-D"jobheader $print_banner" \
-D"pagereversal on" \
-D"program lasergnu" $outfile
else if ($LANG == -Lpostscript) then
lpr $lpr_opts $printer $outfile
endif
else
echo "lasergnu: error in plotting or empty plot; nothing printed."
endif
cleanup:
rm -f $TMP* $outfile
exit
usage:
echo "usage: lasergnu [-Pprinter] [-F font] [-w nx,ny ] [-s xscale,yscale][-b] [-O] [-p] [-t title] [-f file] ['plot command']...."
echo " -O : Orientation Portrait (default is Landscape)"
echo " -F font : fontsize in points for imagen"
echo " -w nx,ny : split page (nx and ny: no. plots horizontal and vertical)"
echo " -s xscale,yscale : scaling in horiz, vertical direction"
echo " -P printer : Printer to send the plot"
echo " -p : set gnuplot driver to postscript (default is Imagen)"
echo " -I : set gnuplot terminal driver to imagen (default)"
echo " -b : don't print jobheader page"
echo ""